前置条件
- 首先需要需要确保当前系统已经安装好了 docker 环境。
- 当前系统的 php 版本于所需 laravel 的依赖版本不一致。
步骤
- 安装 laravel 项目
在系统中使用如下命令安装 laravel 项目 my-laravel-app,其中的 php83 可更换为所需的 php 版本,如 74、80、81。
# docker run --rm -v $(pwd):/var/www -w /var/www laravelsail/php83-composer:latest composer create-project --prefer-dist laravel/laravel my-laravel-app
- 安装所需的 sail 服务
- 进入容器
- 进入项目目录
- 使用命令添加 sail 服务
- 使用空格键选择所需的服务后,按回车键后安装,项目目录中会生成 docker-compose.yml 文件
# docker run -it --rm -v $(pwd):/var/www -w /var/www laravelsail/php83-composer:latest bash
# cd my-laravel-app
# php artisan sail:add
查看 docker-compose.yml 文件内容并根据需要进行修改(一般不需要修改)
修改 .env 文件
因系统端口号可能有冲突,可以在 .env 根据 docker-compose.yml 中的变量进行添加,以下是常用的几个变量需要修改,其他的根据具体需求进行修改。
- APP_PORT 为项目的端口号
- FORWARD_DB_PORT 为数据库的端口号
- FORWARD_REDIS_PORT 为 redis 的端口号
运行项目
使用下面的命令以后台的方式运行项目
# ./vendor/bin/sail up -d
- 查看项目是否正常
- 使用浏览器打开 127.0.0.1:APP_PORT 查看页面是否正常
- 使用数据库工具连接 mysql
- 使用数据库工具连接 redis
其他是用技巧
配置 sail 别名访问
将以下内容添加到 ~/.zshrc 或 ~/.bashrc ,然后重新启动你的 shell,就可以是用 sail 来执行命令了。
alias sail='[ -f sail ] && sh sail || sh vendor/bin/sail'
执行 php 命令
# sail php --version
# sail php script.php
执行 Composer 命令
# sail composer require laravel/sanctum
执行 Artisan 命令
# sail artisan queue:work
执行 Node/NPM 命令
# sail node --version
# sail npm run dev
容器 cli
# sail shell
# sail root-shell
执行 tinker
# sail tinker